package day5;

import java.util.Arrays;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main1 {
    /**
     * 一个数组有N个元素，求连续了数组的最大和。例如:[-1,2,1]，和最大的连续了数组为[2,1]，其和为3
     *
     * @param args
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] num = new int[n + 1];

        for (int i = 0; i < n; i++) {
            num[i] = scanner.nextInt();
        }
        System.out.println(continuousMaxSum(num, n));
    }

    //    private static int continuousMaxSum(int[] num,int n) {
//        int[] num1 = new int[n];
//        int[] num2 = new int[n];
//
//        int index = 0;
//        int indexnum = 0;
//        while (indexnum < n){
//             if (num[indexnum] > 0){
//                num1[index] = num[indexnum];
//                index++;
//                indexnum++;
//            }else {
//                int sum = 0;
//                for (int i : num1) {
//                    sum += i;
//                }
//                if (Arrays.stream(num1).sum() < Arrays.stream(num2).sum()){
//                    num1 = num2;
//                }else {
//                    num2 = num1;
//                }
//                indexnum++;
//                index = 0;
//                num1 = new int[n];
//            }
//        }
//
//        return Math.max(Arrays.stream(num2).sum(), Arrays.stream(num1).sum());
//    }
    private static int continuousMaxSum(int[] num, int n) {
        int max = num[0];
        int sum = num[0];
        for(int i = 1;i < n;i++){
            if(sum >= 0){
                sum += num[i];
            }else{
                sum = num[i];
            }
            if(sum > max){
                max = sum;
            }
        }
        return max;
    }
}